//package com.xxx.yuedong.common.alipay.service.impl;
//
//import cn.hutool.json.JSONObject;
//import com.alibaba.fastjson.JSONArray;
//import com.alipay.api.AlipayApiException;
//import com.alipay.api.AlipayClient;
//import com.alipay.api.request.AlipayTradeAppPayRequest;
//import com.alipay.api.request.AlipayTradeQueryRequest;
//import com.alipay.api.response.AlipayTradeAppPayResponse;
//import com.alipay.api.response.AlipayTradeQueryResponse;
//import com.xxx.yuedong.common.alipay.service.AlipayService;
//import com.xxx.yuedong.common.alipay.service.GoodsService;
//import com.xxx.yuedong.common.alipay.service.OrderService;
//import com.xxx.yuedong.common.exception.YuedongException;
//import com.xxx.yuedong.common.pojo.Order;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.http.HttpStatus;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//
//import java.util.HashMap;
//
//@Slf4j
//@Service
//public class AlipayServiceImpl implements AlipayService {
//
//    @Autowired
//    private AlipayClient alipayClient;
//
//    @Autowired
//    private GoodsService goodsService;
//
//    @Autowired
//    private OrderService orderService;
//
//    @Override
//    public String createNewOrder(Order order) {
//        //创建订单请求信息
//        AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
//        //设置异步通知的url
//        request.setNotifyUrl("");
//        //订单信息json数据
//        JSONObject json = new JSONObject();
//        //设置订单号
//        json.put("out_trade_no",order.getUuid());
//        //订单总金额
//        json.put("total_amount",order.getTotalPrice());
//        //订单标题
//        json.put("subject","购买商品");
//        //订单商品列表信息
//        JSONArray goodsDetail = new JSONArray();
//        JSONObject goods = new JSONObject();
//        HashMap map = goodsService.selectOrderById(order.getGoodId());
//        //商品编号
//        goods.put("goods_id",order.getGoodId());
//        //设置商品名称
//        goods.put("goods_name",map.get("name"));
//        //设置商品数量
//        goods.put("quantity",order.getCount());
//        //设置商品类别
//        goods.put("goods_category",map.get("goodsType"));
//        goodsDetail.add(goods);
//        json.put("goods_detail",goodsDetail);
//
//        request.setBizContent(json.toString());
//
//        try {
//            AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
//
//            if (response.isSuccess()){
//                System.out.println(response.getOutTradeNo());
//                HashMap param = new HashMap(){{.

//                    put("id",order.getId());
//                    //设置状态1,表示订单创建成功，但并未付款
//                    put("status",1);
//                }};
//                int rows = orderService.updateStatus(param);
//                if (rows != 1){
//                    throw new YuedongException(HttpStatus.SC_INTERNAL_SERVER_ERROR,"更新订单状态失败");
//                }
//                return response.getBody();
//            } else {
//                log.debug("创建订单失败,参数{}",order.toString());
//                throw new YuedongException(HttpStatus.SC_INTERNAL_SERVER_ERROR,"创建订单失败");
//            }
//        } catch (AlipayApiException e) {
//            throw new YuedongException(HttpStatus.SC_INTERNAL_SERVER_ERROR,"调用支付接口失败");
//        }
//    }
//
//    @Override
//    public void searchPayResult(Order order) {
//        AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();
//        JSONObject json = new JSONObject();
//        json.put("out_trade_no",order.getUuid());
//        request.setBizContent(json.toString());
//        try {
//            AlipayTradeQueryResponse response = alipayClient.execute(request);
//            if (response.isSuccess()){
//                String tradeStatus = response.getTradeStatus();
//                System.out.println(tradeStatus);
//                if ("TRADE_SUCCESS".equals(tradeStatus)){
//                    HashMap param = new HashMap(){{
//                        put("id",order.getId());
//                        put("status",2);
//                    }};
//                }else{
//                    System.out.println("订单还未支付");
//                    System.out.println("查询支付结果响应："+response.getOutTradeNo());
//                }
//            }else{
//                System.out.println("订单未支付");
//            }
//        } catch (AlipayApiException e) {
//            throw new YuedongException(HttpStatus.SC_INTERNAL_SERVER_ERROR,"查询订单状态失败");
//        }
//
//    }
//}
